var utils = require("../utils");
var constant = require("./constant");
var ad_util = {
  execute() {
    var ad_interval = constant.min_ad_time + random(2, 5);
    sleep(ad_interval * 1000);
    console.log("ad_util execute: end");
    if (
      utils.exists_text("查看详情") &&
      !utils.exists_text("立即下载") &&
      !utils.exists_text_starts_with("下载并体验")
    ) {
      if (
        utils.exists_text("查看详情").clickable() &&
        utils.click_text("查看详情")
      ) {
        console.log("ad_util execute: 找到【查看详情】");
        var ad_swipe_interval = constant.min_ad_swipe_time + random(1, 3);
        utils.swipe_up(ad_swipe_interval, 100);
        this.go_back();
      } else {
        console.log("ad_util execute: 没找到【查看详情】");
        this.go_back();
      }
    } else {
      console.log("ad_util execute: 没找到【查看详情】");
      this.go_back();
    }
    this.after();
  },
  go_back() {
    var index = 0;
    while (true) {
      if (index > 3) {
        return;
      }
      back();
      sleep(constant.min_click_after_time * 1000);
      if (utils.exists_text_starts_with("拒绝")) {
        utils.click_text("拒绝");
        console.log("go_back 找到【拒绝】");
        sleep(constant.min_click_after_time * 1000);
        back();
        sleep(constant.min_click_after_time * 1000);
      }
      if (utils.exists_text_starts_with("立即收下")) {
        return;
      }
      if (utils.exists_text_starts_with("开心收下")) {
        return;
      }
      if (utils.exists_text_starts_with("残忍离开")) {
        return;
      }
      if (utils.exists_text_starts_with("换个视频")) {
        return;
      }
      if (utils.exists_text_starts_with("再看一个领取")) {
        return;
      }
      if (utils.exists_text_starts_with("再看1个获得")) {
        return;
      }
      index++;
      console.log("go_back index: ", index);
    }
  },
  after() {
    sleep(constant.min_ad_after_time * 1000);
    var ui_text_1 = utils.exists_text_starts_with("换个视频");
    if (ui_text_1) {
      console.log("gold_video after: 找到【换个视频】");
      utils.click_text_starts_with("换个视频");
      sleep(constant.min_click_after_time * 1000);
      this.execute();
      return;
    }
    var ui_text_2 = utils.exists_text_starts_with("再看一个领取");
    if (ui_text_2) {
      console.log("ad_util after: 找到【再看一个领取】" + ui_text_2.text());
      var gold = utils.get_gold(ui_text_2.text());
      console.log("ad_util after: " + gold + "金币");
      if (gold > constant.min_gold) {
        utils.click_text_starts_with("再看一个领取");
        sleep(constant.min_click_after_time * 1000);
        this.execute();
      } else {
        if (utils.click_text("残忍离开")) {
          console.log("ad_util after: 找到【残忍离开】");
          sleep(2 * 1000);
        } else {
          console.log("ad_util after: 没找到【残忍离开】");
        }
        this.next();
      }
      return;
    }
    var ui_text_3 = utils.exists_text_starts_with("再看1个获得");
    if (ui_text_3) {
      console.log("ad_util after: 找到【再看1个获得】");
      utils.click_text_starts_with("再看1个获得");
      sleep(constant.min_click_after_time * 1000);
      this.execute();
      return;
    }
    console.log(
      "ad_util after: 没找到【再看一个领取】或【再看1个获得】或【换个视频】"
    );
    this.next();
  },
  next() {
    console.log("ad_util next");
  },
};

module.exports = ad_util;
